﻿using System;
using System.Web.UI.WebControls;

namespace Web.forms
{
    public partial class Bodegas : Pagina
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack) return;

            LimpiaForm();
        }

        private void Cargar_GridView()
        {
            grvBodegas.DataSource = BLL.Bodegas.ObtenerBodegas();
            grvBodegas.DataBind();
        }

        protected void grvBodegas_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.Header)
            {
                if (e.Row.RowIndex == 0)
                    e.Row.Style.Add("height", "50px");

                return;
            }

            if (e.Row.FindControl("Btn_Delete") == null) return;

            if (e.Row.FindControl("Label1") == null) return;

            var tmpGlosa = ((Label)e.Row.FindControl("Label2")).Text;

            var btnDel = ((ImageButton)e.Row.FindControl("Btn_Delete"));

            btnDel.OnClientClick = "if (!confirm('¿Desea eliminar la bodega '" + tmpGlosa + "'?')) return false;";
        }

        protected void grvBodegas_SelectedIndexChanged(object sender, EventArgs e)
        {
            lblBodegaId.Text = ((Label)grvBodegas.SelectedRow.FindControl("Label1")).Text;
            txtGlosa.Text = ((Label)grvBodegas.SelectedRow.FindControl("Label2")).Text.ToUpper();

            lnkVerPasillosBodega.Visible = true;

            Cargar_GridView();
        }

        private void LimpiaForm()
        {
            lblBodegaId.Text = BLL.Bodegas.ObtenerMaxId().ToString().PadLeft(3, '0');
            lblBodegaId.Enabled = false;
            lnkVerPasillosBodega.Visible = false;
            txtGlosa.Text = "";

            Cargar_GridView();
        }

        protected void grvBodegas_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName != "Eliminar") return;

            var Mensaje = "";

            BLL.Bodega.Eliminar(Convert.ToInt16(e.CommandArgument), ref Mensaje);

            LimpiaForm();

            if (Mensaje.Length != 0)
                PopUpMessage(Mensaje);
        }

        protected void btnGrabar_Click(object sender, EventArgs e)
        {
            if (txtGlosa.Text.Trim().Length == 0)
            {
                PopUpMessage("Ingrese Glosa de la Bodega");
                return;
            }

            var mensaje = "";

            BLL.Bodega.Grabar(Convert.ToInt16(lblBodegaId.Text), txtGlosa.Text, ref mensaje);
            
            LimpiaForm();

            if (mensaje.Length == 0) return;

            PopUpMessage(mensaje);
            return;
        }

        protected void btnNuevo_Click(object sender, EventArgs e)
        {
            LimpiaForm();
        }

        protected void lnkVerPasillosBodega_Click(object sender, EventArgs e)
        {
            string mensaje = "";

            var tmpListaPasillos = BLL.Bodegas.ObtenerPasillosPorBodega(Convert.ToInt16(lblBodegaId.Text), ref mensaje);

            if (tmpListaPasillos.Count == 0)
                mensaje = "Bodega sin pasillos asignados";
            else
            {
                mensaje = "Pasillos de la Bodega \"" + txtGlosa.Text + "\":\n\n";
                var I = 0;

                foreach (var tmpPasilllo in tmpListaPasillos)
                {
                    if (I != 0)
                        mensaje += " - " + tmpPasilllo.PasilloId;
                    else
                        mensaje += tmpPasilllo.PasilloId;

                    I++;

                    if (!I.Equals(4)) continue;

                    mensaje += "\n";
                    I = 0;
                }
            }

            PopUpMessage(mensaje);
            return;
        }
    }
}
